//package com.plian.system.controller.ra.estateregistration;
//
//import com.plian.Tools.CacheUtil;
//import com.plian.Tools.TokenUtil;
//import com.plian.Tools.base.BaseController;
//import com.plian.Tools.pagedata.PageData;
//import com.plian.system.common.status.CustomCode;
//import com.plian.system.model.CommonCode;
//import com.plian.system.model.ListResult;
//import com.plian.system.model.ObjResult;
//import com.plian.system.model.token.PassToken;
//import com.plian.system.service.ra.estateregistration.EstateRegistrationService;
//import io.swagger.annotations.ApiOperation;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//import org.springframework.web.multipart.MultipartFile;
//
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.OutputStream;
//import java.util.List;
//
//@RestController
//@RequestMapping(value = "api/estateregistration")
//public class EstateRegistrationController extends BaseController {
//    @Autowired
//    EstateRegistrationService estateRegistrationService;
//
//    /**
//     * 新增
//     *
//     * @param pd
//     * @return
//     */
//    @PostMapping(value = "/save")
//    public ObjResult save(@RequestBody PageData pd) {
//        return estateRegistrationService.save(pd);
//    }
//
//    /**
//     * 修改
//     *
//     * @param pd
//     * @return
//     */
//    @PostMapping(value = "/edit")
//    public ObjResult edit(@RequestBody PageData pd) {
//        return estateRegistrationService.edit(pd);
//    }
//
//    /**
//     * 根据id查询,详情页
//     *
//     * @param pd
//     * @return
//     */
//    @PostMapping(value = "/detail")
//    public ObjResult detail(@RequestBody PageData pd) {
//        return estateRegistrationService.findbyid(pd);
//    }
//
//    /**
//     * 查询列表
//     *
//     * @return
//     */
//    @PostMapping(value = "/listB")
//    public ListResult listB(@RequestBody PageData pd) {
//        return estateRegistrationService.listB(pd);
//    }
//
//    /**
//     * 查询列表
//     *
//     * @return
//     */
//    @PostMapping(value = "/listA")
//    public ListResult listA(@RequestBody PageData pd) {
//        return estateRegistrationService.listA(pd);
//    }
//
//    /**
//     * 房产分割 获取房产列表时调用
//     * @param pd
//     * @return
//     */
//    @PostMapping(value = "/refList")
//    public ListResult refList(@RequestBody PageData pd) {
//        return estateRegistrationService.refList(pd);
//    }
//
//    /**
//     * 房产调整 获取房产列表时调用
//     * @param pd
//     * @return
//     */
//    @PostMapping(value = "/variationList")
//    public ListResult variationList(@RequestBody PageData pd) {
//        return estateRegistrationService.variationList(pd);
//    }
//
//    /**
//     * 删除
//     *
//     * @param pd
//     * @return
//     */
//    @PostMapping(value = "/delete")
//    public ObjResult del_ids(@RequestBody PageData pd) {
//        return estateRegistrationService.del_ids((List<String>) pd.get("ids"));
//    }
//
//    /**
//     * 委托
//     *
//     * @param pd
//     * @return
//     */
//    @PostMapping(value = "/entrust")
//    public ObjResult entrust(@RequestBody PageData pd) {
//        return estateRegistrationService.entrust(pd);
//    }
//
//    /**
//     * 取消委托
//     *
//     * @param pd
//     * @return
//     */
//    @PostMapping(value = "/cancelEntrust")
//    public ObjResult cancelEntrust(@RequestBody PageData pd) {
//        return estateRegistrationService.cancelEntrust(pd);
//    }
//
//    /**
//     * 上报
//     *
//     * @param pd
//     * @return
//     */
//    @PostMapping(value = "/submit")
//    public ObjResult submit(@RequestBody PageData pd) {
//        return estateRegistrationService.submit((List<String>) pd.get("ids"));
//    }
//
//    @PostMapping(value = "/findByIds")
//    public List<PageData> findByIds(List<String> formIds) {
//        return estateRegistrationService.findByIds(formIds);
//    }
//
//    /**
//     * 模板文件下载
//     * @param response
//     * @param os
//     */
//    @GetMapping("/exportTemplateExcel")
//    @PassToken
//    @ApiOperation(value = "模板文件下载", notes = "模板文件下载")
//    public void exportTemplateExcel(HttpServletResponse response, OutputStream os){
//        estateRegistrationService.exportTemplateExcel(response, os);
//    }
//
//
//    /**
//     * 导入 根据土地名称新增或者覆盖
//     */
//    @PostMapping("/excelCoverImport")
//    @ApiOperation(value = "覆盖导入", notes = "覆盖导入")
//    public ObjResult excelCoverImport(@RequestParam("file") MultipartFile multipartFile) throws IOException {
//        String progressId = TokenUtil.getTokenUserId() + "_"+System.currentTimeMillis();
//        CacheUtil.put("progress","progress",progressId + "#half:hour",0);
//        InputStream inputStream = multipartFile.getInputStream();
//        estateRegistrationService.importExcel(progressId, inputStream);
//        ObjResult objResult = new ObjResult(CommonCode.SUCCESS);
//        PageData pd = new PageData();
//        pd.put("progressId", progressId);
//        objResult.setPageData(pd);
//        return objResult;
//    }
//
//    /**
//     * 导入进度查看
//     */
//    @GetMapping("/progress/{progressId}")
//    @ApiOperation(value = "导入进度查看", notes = "导入进度查看")
//    public ObjResult progress(@PathVariable String progressId){
//        Object data = CacheUtil.get("progress", "progress", progressId + "#half:hour");
//        if(data != null && data instanceof String){
//            if ("导入成功".equals(data)){
//                ObjResult objResult = new ObjResult(CommonCode.SUCCESS);
//                PageData pd = new PageData();
//                pd.put("data", 200);
//                objResult.setPageData(pd);
//                return objResult;
//            }
//            return new ObjResult(CustomCode.builder().message((String)data).code(1000).success(false).build());
//        }
//        ObjResult objResult = new ObjResult(CommonCode.SUCCESS);
//        PageData pd = new PageData();
//        pd.put("data", data);
//        objResult.setPageData(pd);
//        return objResult;
//    }
//}
